home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / Apps / SoundApps / LPCView / Source / Dispatcher.m < prev    next >
Encoding:
Text File  |  1995-06-12  |  6.0 KB  |  309 lines

  1.  
  2. /* Generated by Interface Builder */
  3.  
  4. #import "Dispatcher.h"
  5. #import "LPCPlot.h"
  6. #import "LPCreate.h"
  7. #import "PCHPlot.h"
  8. #import "LPCView.h"
  9. #import "Help.h"
  10. #import <appkit/OpenPanel.h>
  11. #import <appkit/SavePanel.h>
  12. #import <appkit/Application.h>
  13. #import <strings.h>
  14. #import <stdio.h>
  15. #import <libc.h>
  16. #import <appkit/Control.h>
  17. #import <appkit/Window.h>
  18. #import <defaults/defaults.h>
  19.  
  20. @implementation Dispatcher
  21. + new
  22. {
  23.     self = [super new];
  24.     return self;
  25. }
  26.  
  27. - init
  28. {
  29.     char *suffix;
  30.     
  31.     strcpy(appDir, NXArgv[0]);
  32.     if (suffix = rindex(appDir,'/')) 
  33.         *suffix  = '\0';     /* remove executable name */
  34.     if (appDir) 
  35.         chdir(appDir); 
  36.     getwd(appDir);
  37.     selection = NULL;
  38.     [prefPanel setDelegate:self];
  39.     [self setPrefs];
  40.     return self;
  41. }
  42.  
  43. - (const char *)appDirectory;
  44. /* Returns the path to the app wrapper (for Help object).
  45.  */
  46. {
  47.     return appDir;
  48. }
  49.  
  50. - setPrefs
  51. {
  52.     const char *owner;
  53.     char *temp;
  54.     
  55.     owner = "lpcview";
  56.     temp = (char *)NXReadDefault(owner, "lpc");
  57.     if (temp)
  58.         [deflpc setStringValue:(char *)NXReadDefault(owner, "lpc")];
  59.     
  60.     temp = (char *)NXReadDefault(owner, "stabilize");
  61.     if (temp)
  62.         [defstabilize setStringValue:(char *)NXReadDefault(owner, "stabilize")];
  63.     
  64.     temp = (char *)NXReadDefault(owner, "ptrack");
  65.     if (temp)
  66.         [defptrack setStringValue:(char *)NXReadDefault(owner, "ptrack")];
  67.     
  68.     temp = (char *)NXReadDefault(owner, "merge");
  69.     if (temp)
  70.         [defmerge setStringValue:(char *)NXReadDefault(owner, "merge")];
  71.     
  72.     temp = (char *)NXReadDefault(owner, "hz");
  73.     if (temp)
  74.         [defhz setStringValue:(char *)NXReadDefault(owner, "hz")];
  75.     
  76.     temp = (char *)NXReadDefault(owner, "playpitch");
  77.     if (temp)
  78.         [defplaypitch setStringValue:(char *)NXReadDefault(owner, "playpitch")];
  79.     
  80.     temp = (char *)NXReadDefault(owner, "poles");
  81.     if (temp)
  82.         [defpoles setIntValue:(int)atoi(temp)];
  83.     
  84.     temp = (char *)NXReadDefault(owner, "frames");
  85.     if (temp)
  86.         [defframes setIntValue:(int)atoi(temp)];
  87.     
  88.     temp = (char *)NXReadDefault(owner, "lowcps");
  89.     if (temp)
  90.         [deflowcps setFloatValue:(float)atof(temp)];
  91.     
  92.     temp = (char *)NXReadDefault(owner, "highcps");
  93.     if (temp)
  94.         [defhighcps setFloatValue:(float)atof(temp)];
  95.  
  96.     temp = (char *)NXReadDefault(owner, "pitchframe");
  97.     if (temp)
  98.         [defpitchframe setIntValue:(int)atof(temp)];
  99.  
  100.     return self;
  101. }
  102.  
  103. - changePrefs:sender
  104. {
  105.     const    char *owner;
  106.     
  107.     owner = "lpcview";
  108.     
  109.     NXWriteDefault(owner, "lpc", [deflpc stringValue]);
  110.     NXWriteDefault(owner, "stabilize", [defstabilize stringValue]);
  111.     NXWriteDefault(owner, "ptrack", [defptrack stringValue]);
  112.     NXWriteDefault(owner, "merge", [defmerge stringValue]);
  113.     NXWriteDefault(owner, "hz", [defhz stringValue]);
  114.     NXWriteDefault(owner, "playpitch", [defplaypitch stringValue]);
  115.     NXWriteDefault(owner, "poles", [defpoles stringValue]);
  116.     NXWriteDefault(owner, "frames", [defframes stringValue]);
  117.     NXWriteDefault(owner, "lowcps", [deflowcps stringValue]);
  118.     NXWriteDefault(owner, "highcps", [defhighcps stringValue]);
  119.     NXWriteDefault(owner, "pitchframe", [defpitchframe stringValue]);
  120.     return self;
  121. }
  122.  
  123. - windowWillClose:sender
  124. {
  125.     const    char *owner;
  126.     
  127.     owner = "lpcview";
  128.  
  129.     NXWriteDefault(owner, "lpc", [deflpc stringValue]);
  130.     NXWriteDefault(owner, "stabilize", [defstabilize stringValue]);
  131.     NXWriteDefault(owner, "ptrack", [defptrack stringValue]);
  132.     NXWriteDefault(owner, "merge", [defmerge stringValue]);
  133.     NXWriteDefault(owner, "hz", [defhz stringValue]);
  134.     NXWriteDefault(owner, "playpitch", [defplaypitch stringValue]);
  135.     NXWriteDefault(owner, "poles", [defpoles stringValue]);
  136.     NXWriteDefault(owner, "frames", [defframes stringValue]);
  137.     NXWriteDefault(owner, "lowcps", [deflowcps stringValue]);
  138.     NXWriteDefault(owner, "highcps", [defhighcps stringValue]);
  139.     NXWriteDefault(owner, "pitchframe", [defpitchframe stringValue]);
  140.  
  141.     return self;
  142. }
  143.  
  144. - createPlot:sender
  145. {
  146.     [LPCPlot new:"Untitled"];
  147.     return self;
  148. }
  149.  
  150. - createPCH:sender
  151. {
  152.     [PCHPlot new:"Untitled"];
  153.     return self;
  154. }
  155.  
  156. - create:sender
  157. {
  158.     [LPCreate new];
  159.     return self;
  160. }
  161.  
  162. - viewFile:(char *)filename
  163. {
  164.     [LPCPlot new:filename];
  165.     return self;
  166. }
  167.  
  168. - viewPCHfile:(char *)filename
  169. {
  170.     [PCHPlot new:filename];
  171.     return self;
  172. }
  173.  
  174. - openLPCfile:sender
  175. {
  176.     char    *types[2];
  177.     char    file[1024];
  178.     static id    openPan = nil;
  179.     
  180.     types[0] = "lpc";
  181.     types[1] = 0;
  182.     if (!openPan)
  183.         openPan = [OpenPanel new];
  184.     if ([openPan runModalForTypes:types]) {
  185.         strcpy(file, [openPan filename]);
  186.         [LPCPlot new:file];
  187.     }
  188.     return self;
  189. }
  190.  
  191. - openPCHfile:sender
  192. {
  193.     char *pchtypes[2];
  194.     char file[1024];
  195.     static id openPan = nil;
  196.         
  197.     pchtypes[0] = "pch";
  198.     pchtypes[1] = 0;    
  199.     if (!openPan)
  200.         openPan = [OpenPanel new];
  201.     if ([openPan runModalForTypes:pchtypes]) {
  202.         strcpy(file, [openPan filename]);
  203.         [PCHPlot new:file];
  204.     }
  205.     return self;
  206.  
  207. }
  208.  
  209. - cut:sender
  210. {
  211.     if (!selection) {
  212.         selection = NXOpenMemory(NULL, 0, NX_READWRITE);
  213.     }
  214.     else {
  215.         NXCloseMemory(selection, NX_FREEBUFFER);
  216.         selection = NXOpenMemory(NULL, 0, NX_READWRITE);
  217.     }
  218.     [[[NXApp keyWindow] delegate] doCut:selection];
  219.     return self;
  220. }
  221.  
  222. - copy:sender
  223. {
  224.     // get a new memory stream to copy into
  225.     if (!selection) {
  226.         selection = NXOpenMemory(NULL, 0, NX_READWRITE);
  227.     }    
  228.     else {
  229.         NXCloseMemory(selection, NX_FREEBUFFER);
  230.         selection = NXOpenMemory(NULL, 0, NX_READWRITE);
  231.     }
  232.     [[[NXApp keyWindow] delegate] doCopy:selection];
  233.     return self; 
  234. }
  235.  
  236. - insert:sender
  237. {
  238.     float    *data;
  239.     int    len, maxlen;
  240.     
  241.     if (!selection) 
  242.         return self;
  243.     NXGetMemoryBuffer(selection, (char **)&data, &len, &maxlen);
  244.     [[[NXApp keyWindow] delegate] doInsert:data:len];
  245.     return self;
  246. }
  247.  
  248. - (BOOL)appAcceptsAnotherFile:sender
  249. {
  250.     return YES;
  251. }
  252.  
  253. - (char *)lpc
  254. {
  255.     return (char *)[deflpc stringValue];
  256. }
  257.  
  258. - (char *)stabilize
  259. {
  260.     return (char *)[defstabilize stringValue];
  261. }
  262.  
  263. - (char *)ptrack
  264. {
  265.     return (char *)[defptrack stringValue];
  266. }
  267.  
  268. - (char *)merge
  269. {
  270.     return (char *)[defmerge stringValue];
  271. }
  272.  
  273. - (char *)hz
  274. {
  275.     return (char *)[defhz stringValue];
  276. }
  277.  
  278. - (char *)playpitch
  279. {
  280.     return (char *)[defplaypitch stringValue];
  281. }
  282.  
  283. - (int)poles
  284. {
  285.     return [defpoles intValue];;
  286. }
  287.  
  288. - (int)frames
  289. {
  290.     return [defframes intValue];
  291. }
  292.  
  293. - (float)lowcps
  294. {
  295.     return [deflowcps floatValue]; 
  296. }
  297.  
  298. - (float)highcps
  299. {
  300.     return [defhighcps floatValue];
  301. }
  302.  
  303. - (int)ptchframe
  304. {
  305.     return [defpitchframe intValue];
  306. }
  307.  
  308. @end
  309.